import os
"""tortoise-orm数据库配置"""
TORTOISE_ORM = {
    "connections": {
        # 每一个配置代码一个数据库
        "default": {
            'engine': 'tortoise.backends.mysql',  # MySQL or Mariadb
            'credentials': {  # 连接参数
                'host': os.environ.get('DB_HOST', '127.0.0.1'),  # 数据库IP/域名地址
                'port': int(os.environ.get('DB_PORT', 3306)),  # 端口
                'user': os.environ.get('DB_USER', 'root'),  # 连接账户
                'password': os.environ.get('DB_PASSWORD', 'wk65614@@@'),  # 连接密码
                'database': os.environ.get('DB_DATABASE', 'fastchat'),  # 数据库
                'charset': os.environ.get('DB_CHARSET', 'utf8mb4'),  # 编码
                'minsize': int(os.environ.get('DB_POOL_MINSIZE', 1)),  # 连接池中的最小连接数
                'maxsize': int(os.environ.get('DB_POOL_MAXSIZE', 5)),  # 连接池中的最大连接数
                "echo": bool(os.environ.get('DEBUG', True))  # 执行数据库操作时，是否打印SQL语句
            }
        }
    },
    'apps': {  # 默认所在的应用目录
        'models': {  # 数据模型的分组名
            'models': [
                'application.apps.chat.models',
                'application.apps.users.models',
                'aerich.models'
            ],  # 模型所在目录文件的导包路径[字符串格式]，从main.py所在路径开始编写
            'default_connection': 'default',  # 上一行配置中的模型列表的默认连接配置
        }
    },
     # 时区设置
    # 当use_tz=True，当前tortoise-orm会默认使用当前程序所在操作系统的时区，
    # 当use_tz=False时，当前tortoise-orm会默认使用timezone配置项中的时区
    'use_tz': False,
    'timezone': os.environ.get('APP_TIMEZONE', 'Asia/Shanghai')
}

SMS = {
    'length': int(os.environ.get('SMS_CODE_LENGTH', 4)), # 短信验证码长度
    'expire': int(os.environ.get('SMS_CODE_EXPIRE', 4)), # 短信验证码保存在redis中的有效期
}

ALIYUN = {
    'key': os.environ.get('ALIYUN_KEY_ID'),
    'secret': os.environ.get('ALIYUN_KEY_SECRET'),
    'sms': {
        'sign_name': os.environ.get('ALIYUN_VERIFY_SMS_SIGN_NAME', '阿里云短信测试'),
        'template_code': os.environ.get('ALIYUN_VERIFY_TEMPLATE_CODE', 'SMS_154950909'),
    }
}

WECHAT = {
    'app_id': os.environ.get('WECHAT_APP_ID', ''),
    'app_secret': os.environ.get('WECHAT_APP_SECRET', ''),
}

REDIS = {
    'host': os.environ.get('RD_HOST', 'localhost'), # 数据库地址
    'port': os.environ.get('RD_PORT', 6379),        # 数据库端口
    'db': os.environ.get('RD_DB', 0),               # 数据库名
    'username':  os.environ.get('RD_USERNAME', ''), # 用户名
    'password':  os.environ.get('RD_PASSWORD', ''), # 密码
}

JWT = {
    # 秘钥[盐值]
    'secret_key': os.environ.get('APP_SECRET', 'AHjfIn9vGOQmu!GnIIGC/pxbPFf*hmsfRP6!YJn@rAwnlvC6#biVn6-JIU92EANk'),
    # 设定JWT令牌签名算法
    'algorithm': "HS256",
    # 设置令牌过期时间变量（单位：秒）
    'expire_time': 30 * 60
}

# AI助理的限流功能
AI_ROBOT = {
    # 是否开启api次数限流，0表示关闭，1表示开启
    'limit': os.environ.get('AI_ROBOT_LIMIT', '1'),
    # 允许用户每天免费使用的次数
    'count': os.environ.get('AI_ROBOT_COUNT', 10),
}

# AI助理的限流功能
AI_ROBOT = {
    # 是否开启api次数限流，0表示关闭，1表示开启
    'limit': os.environ.get('AI_ROBOT_LIMIT', '1'),
    # 允许用户每天免费使用的次数
    'count': os.environ.get('AI_ROBOT_COUNT', 10),
    'tongyi_api_key': os.environ.get('TONGYI_API_KEY', 'sk-c98c8f9c9e474aea9c4d56bd52fcc001'), # 灵积的API Key
    'openai_api_key': os.environ.get('OPENAI_API_KEY', 'sk-WmM426a0b2ce516cdfab7a58d6562fe2d78cbcd5288IYPXT'), # openAI GPT3.5的Key
    'openai_baseurl': os.environ.get('OPENAI_BASEURL', 'https://api.gptsapi.net/v1'), # api接口地址
    'openai_model': os.environ.get('OPENAI_MODEL', 'gpt-3.5-turbo'), # GPT模型名称
}